/**
 * Created by Administrator on 2022/8/16.
 */
/*public class Date {
    public int year;
    public int month;
    public int day;

    // 构造方法：
    // 名字与类名相同，没有返回值类型，设置为void也不行
    // 一般情况下使用public修饰
    // 在创建对象时由编译器自动调用，并且在对象的生命周期内只调用一次
    public Date(int y,int m,int d){
        this.year = y;
        this.month = m;
        this.day = d;
        System.out.println("构造方法");
    }

    public void setDate(Date this,int year,int month,int day) {
        this.year = year;
        this.month = month;
        this.day = day;
    }
    public void print() {
        System.out.println(year+"-"+month+"-"+day);
    }

    public static void main(String[] args) {
        Date date = new Date(2022,8,16);
        // date.year = 2022;
        // date.month = 8;
        // date.day =16;

        //date.setDate(2022,8,16);
        date.print();
    }
}*/

/*public class Date {
    public int year;
    public int month;
    public int day;

    //无参构造方法
    public Date() {
        System.out.println("无参构造方法");

    }
    //有参构造方法
    public Date(int y,int m,int d){
        this.year = y;
        this.month = m;
        this.day = d;
        System.out.println("有参构造方法");
    }

    public static void main(String[] args) {
        Date date1 = new Date(2022,8,16);
        Date date2 = new Date();
    }
}*/


/*
//一旦用户定义，编译器则不再生成。
public class Date {
    public int year;
    public int month;
    public int day;

    public Date(int y,int m,int d){
        this.year = y;
        this.month = m;
        this.day = d;
        System.out.println("有参构造方法");
    }

    public static void main(String[] args) {
        Date date1 = new Date(2022,8,16);

        // 如果编译器会生成，则生成的构造方法一定是无参的
        // 则此处创建对象是可以通过编译的
        // 但实际情况是：编译期报错
        // 因为用户定义构造方法，编译器则不再生成。
        //Date date2 = new Date();
    }
}
*/

/*
//构造方法中，可以通过this调用其他构造方法来简化代码
public class Date {
    public int year;
    public int month;
    public int day;

    // 无参构造方法--内部给各个成员赋值初始值，该部分功能与三个参数的构造方法重复
    // 此处可以在无参构造方法中通过this调用带有三个参数的构造方法
    // 但是this(1900,1,1);必须是构造方法中第一条语句
    public Date() {
        this(2022,8,16);
        System.out.println("无参构造方法");
    }

    public Date(int y,int m,int d){
        this.year = y;
        this.month = m;
        this.day = d;
        System.out.println("有参构造方法");
    }

    public void print() {
        System.out.println(year+"-"+month+"-"+day);
    }

    public static void main(String[] args) {
        Date date = new Date();
        date.print();
    }
}*/

/*
//就地初始化
public class Date {
    public int year = 2022;
    public int month = 8;
    public int day = 16;

    public void print() {
        System.out.println(year+"-"+month+"-"+day);
    }

    public static void main(String[] args) {
        Date date = new Date();
        date.print();
    }
}*/

